import { Indicator } from "mint-ui";
import axios from "axios";
import store from "@/store";
import router from "@/router";
export default {
	common: {
		method: "GET",
		data: {},
		params: {},
		headers: {},
	},
	$axios(options = {}) {
		options.method = options.method || this.common.method;
		options.data = options.data || this.common.data;
		options.params = options.params || this.common.params;
		options.headers = options.headers || this.common.headers;
		//请求前==》显示加载中...
		Indicator.open("加载中...");

		//是否是登录状态
		if (options.headers.token) {
			options.headers.token = store.state.user.token;
			if (!options.headers.token) {
				router.push("/login");
			}
		}

		return axios(options).then((v) => {
			let data = v.data.data;
			//如果token过期，重新登录
			if (data.code == 1000) {
				Indicator.close();
				return router.push("/login");
			}
			return new Promise((res, rej) => {
				if (!v) return rej();
				//结束===》关闭加载中
				setTimeout(() => {
					Indicator.close();
				}, 500);
				res(data);
			});
		});
	},
};
